<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE ForeignFunctionInterface #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE GHCForeignImportPrim #-}</span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# LANGUAGE MagicHash #-}</span><span>
</span><span id="line-5"></span><span class="hs-pragma">{-# LANGUAGE RecordWildCards #-}</span><span>
</span><span id="line-6"></span><span class="hs-pragma">{-# LANGUAGE UnliftedFFITypes #-}</span><span>
</span><span id="line-7"></span><span class="hs-pragma">{-# LANGUAGE DeriveGeneric #-}</span><span>
</span><span id="line-8"></span><span class="hs-pragma">{-# LANGUAGE DeriveTraversable #-}</span><span>
</span><span id="line-9"></span><span>
</span><span id="line-10"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Exts.Heap.Closures</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-11"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Closures</span></span><span>
</span><span id="line-12"></span><span>      </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Closure"><span class="hs-identifier">Closure</span></a></span><span>
</span><span id="line-13"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#GenClosure"><span class="hs-identifier">GenClosure</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-14"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier">PrimType</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-15"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier">allClosures</span></a></span><span class="hs-cpp">
#if __GLASGOW_HASKELL__ &gt;= 809
</span><span>    </span><span class="hs-comment">-- The closureSize# primop is unsupported on earlier GHC releases but we</span><span>
</span><span id="line-18"></span><span>    </span><span class="hs-comment">-- build ghc-heap as a boot library so it must be buildable. Drop this once</span><span>
</span><span id="line-19"></span><span>    </span><span class="hs-comment">-- we are guaranteed to bootstsrap with GHC &gt;= 8.9.</span><span>
</span><span id="line-20"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#closureSize"><span class="hs-identifier">closureSize</span></a></span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-23"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Boxes</span></span><span>
</span><span id="line-24"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier">Box</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-25"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#areBoxesEqual"><span class="hs-identifier">areBoxesEqual</span></a></span><span>
</span><span id="line-26"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#asBox"><span class="hs-identifier">asBox</span></a></span><span>
</span><span id="line-27"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-28"></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-comment">-- See note [Why do we import Prelude here?]</span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Constants.html"><span class="hs-identifier">GHC.Exts.Heap.Constants</span></a></span><span class="hs-cpp">
#if defined(PROFILING)
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">GHC.Exts.Heap.InfoTableProf</span><span class="hs-cpp">
#else
</span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.html"><span class="hs-identifier">GHC.Exts.Heap.InfoTable</span></a></span><span>
</span><span id="line-35"></span><span>
</span><span id="line-36"></span><span class="hs-comment">-- `ghc -M` currently doesn't properly account for ways when generating</span><span>
</span><span id="line-37"></span><span class="hs-comment">-- dependencies (#15197). This import ensures correct build-ordering between</span><span>
</span><span id="line-38"></span><span class="hs-comment">-- this module and GHC.Exts.Heap.InfoTableProf. It should be removed when #15197</span><span>
</span><span id="line-39"></span><span class="hs-comment">-- is fixed.</span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.InfoTableProf.html"><span class="hs-identifier">GHC.Exts.Heap.InfoTableProf</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Bits.html#"><span class="hs-identifier">Data.Bits</span></a></span><span>
</span><span id="line-44"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Int.html#"><span class="hs-identifier">Data.Int</span></a></span><span>
</span><span id="line-45"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Word.html#"><span class="hs-identifier">Data.Word</span></a></span><span>
</span><span id="line-46"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Exts.html#"><span class="hs-identifier">GHC.Exts</span></a></span><span>
</span><span id="line-47"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Generics.html#"><span class="hs-identifier">GHC.Generics</span></a></span><span>
</span><span id="line-48"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Numeric.html#"><span class="hs-identifier">Numeric</span></a></span><span>
</span><span id="line-49"></span><span>
</span><span id="line-50"></span><span class="hs-comment">------------------------------------------------------------------------</span><span>
</span><span id="line-51"></span><span class="hs-comment">-- Boxes</span><span>
</span><span id="line-52"></span><span>
</span><span id="line-53"></span><span class="hs-keyword">foreign</span><span> </span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-keyword">prim</span></span><span> </span><span class="annot"><span class="hs-string">&quot;aToWordzh&quot;</span></span><span> </span><span id="aToWord%23"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#aToWord%23"><span class="hs-identifier hs-var">aToWord#</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Any"><span class="hs-identifier hs-type">Any</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Prim.html#Word%23"><span class="hs-identifier hs-type">Word#</span></a></span><span>
</span><span id="line-54"></span><span>
</span><span id="line-55"></span><span class="hs-keyword">foreign</span><span> </span><span class="hs-keyword">import</span><span> </span><span class="annot"><span class="hs-keyword">prim</span></span><span> </span><span class="annot"><span class="hs-string">&quot;reallyUnsafePtrEqualityUpToTag&quot;</span></span><span>
</span><span id="line-56"></span><span>    </span><span id="reallyUnsafePtrEqualityUpToTag%23"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#reallyUnsafePtrEqualityUpToTag%23"><span class="hs-identifier hs-var">reallyUnsafePtrEqualityUpToTag#</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Any"><span class="hs-identifier hs-type">Any</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Any"><span class="hs-identifier hs-type">Any</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Prim.html#Int%23"><span class="hs-identifier hs-type">Int#</span></a></span><span>
</span><span id="line-57"></span><span>
</span><span id="line-58"></span><span class="hs-comment">-- | An arbitrary Haskell value in a safe Box. The point is that even</span><span>
</span><span id="line-59"></span><span class="hs-comment">-- unevaluated thunks can safely be moved around inside the Box, and when</span><span>
</span><span id="line-60"></span><span class="hs-comment">-- required, e.g. in 'getBoxedClosureData', the function knows how far it has</span><span>
</span><span id="line-61"></span><span class="hs-comment">-- to evaluate the argument.</span><span>
</span><span id="line-62"></span><span class="hs-keyword">data</span><span> </span><span id="Box"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-var">Box</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Box"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-var">Box</span></a></span></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Any"><span class="hs-identifier hs-type">Any</span></a></span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679058542"><span id="local-6989586621679058544"><span class="annot"><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-type">Show</span></a></span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-65"></span><span class="hs-comment">-- From libraries/base/GHC/Ptr.lhs</span><span>
</span><span id="line-66"></span><span>   </span><span id="local-6989586621679058531"><span class="annot"><span class="annottext">showsPrec :: Int -&gt; Box -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showsPrec"><span class="hs-identifier hs-var hs-var hs-var hs-var">showsPrec</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span><span> </span><span id="local-6989586621679058529"><span class="annot"><span class="annottext">Any
</span><a href="#local-6989586621679058529"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679058528"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679058528"><span class="hs-identifier hs-var">rs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-67"></span><span>    </span><span class="hs-comment">-- unsafePerformIO (print &quot;&#8595;&quot; &gt;&gt; pClosure a) `seq`</span><span>
</span><span id="line-68"></span><span>    </span><span class="annot"><span class="annottext">ShowS
</span><a href="#local-6989586621679058527"><span class="hs-identifier hs-var">pad_out</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word -&gt; ShowS
forall a. (Integral a, Show a) =&gt; a -&gt; ShowS
</span><a href="../../base/src/Numeric.html#showHex"><span class="hs-identifier hs-var">showHex</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621679058525"><span class="hs-identifier hs-var">addr</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621679058524"><span class="hs-identifier hs-var">tag</span></a></span><span class="annot"><span class="annottext">Word -&gt; Word -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#%3E"><span class="hs-operator hs-var">&gt;</span></a></span><span class="annot"><span class="annottext">Word
</span><span class="hs-number">0</span></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;/&quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621679058524"><span class="hs-identifier hs-var">tag</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679058528"><span class="hs-identifier hs-var">rs</span></a></span><span>
</span><span id="line-69"></span><span>     </span><span class="hs-keyword">where</span><span>
</span><span id="line-70"></span><span>       </span><span id="local-6989586621679058521"><span class="annot"><span class="annottext">ptr :: Word
</span><a href="#local-6989586621679058521"><span class="hs-identifier hs-var hs-var">ptr</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word# -&gt; Word
</span><a href="../../ghc-prim/src/GHC.Types.html#W%23"><span class="hs-identifier hs-var">W#</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Any -&gt; Word#
</span><a href="GHC.Exts.Heap.Closures.html#aToWord%23"><span class="hs-identifier hs-var">aToWord#</span></a></span><span> </span><span class="annot"><span class="annottext">Any
</span><a href="#local-6989586621679058529"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-71"></span><span>       </span><span id="local-6989586621679058524"><span class="annot"><span class="annottext">tag :: Word
</span><a href="#local-6989586621679058524"><span class="hs-identifier hs-var hs-var">tag</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621679058521"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; Word -&gt; Word
forall a. Bits a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/Data.Bits.html#.%26."><span class="hs-operator hs-var">.&amp;.</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Word
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="GHC.Exts.Heap.Constants.html#tAG_MASK"><span class="hs-identifier hs-var">tAG_MASK</span></a></span><span> </span><span class="hs-comment">-- ((1 `shiftL` TAG_BITS) -1)</span><span>
</span><span id="line-72"></span><span>       </span><span id="local-6989586621679058525"><span class="annot"><span class="annottext">addr :: Word
</span><a href="#local-6989586621679058525"><span class="hs-identifier hs-var hs-var">addr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621679058521"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Word -&gt; Word -&gt; Word
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span> </span><span class="annot"><span class="annottext">Word
</span><a href="#local-6989586621679058524"><span class="hs-identifier hs-var">tag</span></a></span><span>
</span><span id="line-73"></span><span>       </span><span id="local-6989586621679058527"><span class="annot"><span class="annottext">pad_out :: ShowS
</span><a href="#local-6989586621679058527"><span class="hs-identifier hs-var hs-var">pad_out</span></a></span></span><span> </span><span id="local-6989586621679058512"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679058512"><span class="hs-identifier hs-var">ls</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'0'</span></span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'x'</span></span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679058512"><span class="hs-identifier hs-var">ls</span></a></span><span>
</span><span id="line-74"></span><span>
</span><span id="line-75"></span><span class="hs-comment">-- |This takes an arbitrary value and puts it into a box.</span><span>
</span><span id="line-76"></span><span class="hs-comment">-- Note that calls like</span><span>
</span><span id="line-77"></span><span class="hs-comment">--</span><span>
</span><span id="line-78"></span><span class="hs-comment">-- &gt; asBox (head list)</span><span>
</span><span id="line-79"></span><span class="hs-comment">--</span><span>
</span><span id="line-80"></span><span class="hs-comment">-- will put the thunk \&quot;head list\&quot; into the box, /not/ the element at the head</span><span>
</span><span id="line-81"></span><span class="hs-comment">-- of the list. For that, use careful case expressions:</span><span>
</span><span id="line-82"></span><span class="hs-comment">--</span><span>
</span><span id="line-83"></span><span class="hs-comment">-- &gt; case list of x:_ -&gt; asBox x</span><span>
</span><span id="line-84"></span><span id="local-6989586621679058703"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#asBox"><span class="hs-identifier hs-type">asBox</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679058703"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span></span><span>
</span><span id="line-85"></span><span id="asBox"><span class="annot"><span class="annottext">asBox :: forall a. a -&gt; Box
</span><a href="GHC.Exts.Heap.Closures.html#asBox"><span class="hs-identifier hs-var hs-var">asBox</span></a></span></span><span> </span><span id="local-6989586621679058511"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679058511"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Any -&gt; Box
</span><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-var">Box</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Any
</span><a href="../../base/src/Unsafe.Coerce.html#unsafeCoerce%23"><span class="hs-identifier hs-var">unsafeCoerce#</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679058511"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span class="hs-comment">-- | Boxes can be compared, but this is not pure, as different heap objects can,</span><span>
</span><span id="line-88"></span><span class="hs-comment">-- after garbage collection, become the same object.</span><span>
</span><span id="line-89"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#areBoxesEqual"><span class="hs-identifier hs-type">areBoxesEqual</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#IO"><span class="hs-identifier hs-type">IO</span></a></span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Bool"><span class="hs-identifier hs-type">Bool</span></a></span><span>
</span><span id="line-90"></span><span id="areBoxesEqual"><span class="annot"><span class="annottext">areBoxesEqual :: Box -&gt; Box -&gt; IO Bool
</span><a href="GHC.Exts.Heap.Closures.html#areBoxesEqual"><span class="hs-identifier hs-var hs-var">areBoxesEqual</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span><span> </span><span id="local-6989586621679058510"><span class="annot"><span class="annottext">Any
</span><a href="#local-6989586621679058510"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span><span> </span><span id="local-6989586621679058509"><span class="annot"><span class="annottext">Any
</span><a href="#local-6989586621679058509"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Any -&gt; Any -&gt; Int#
</span><a href="GHC.Exts.Heap.Closures.html#reallyUnsafePtrEqualityUpToTag%23"><span class="hs-identifier hs-var">reallyUnsafePtrEqualityUpToTag#</span></a></span><span> </span><span class="annot"><span class="annottext">Any
</span><a href="#local-6989586621679058510"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">Any
</span><a href="#local-6989586621679058509"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-91"></span><span>    </span><span class="annot"><span class="annottext">Int#
</span><span class="hs-number">0#</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IO Bool
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#False"><span class="hs-identifier hs-var">False</span></a></span><span>
</span><span id="line-92"></span><span>    </span><span class="annot"><span class="annottext">Int#
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; IO Bool
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../ghc-prim/src/GHC.Types.html#True"><span class="hs-identifier hs-var">True</span></a></span><span>
</span><span id="line-93"></span><span>
</span><span id="line-94"></span><span>
</span><span id="line-95"></span><span class="hs-comment">------------------------------------------------------------------------</span><span>
</span><span id="line-96"></span><span class="hs-comment">-- Closures</span><span>
</span><span id="line-97"></span><span>
</span><span id="line-98"></span><span class="hs-keyword">type</span><span> </span><span id="Closure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Closure"><span class="hs-identifier hs-var">Closure</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#GenClosure"><span class="hs-identifier hs-type">GenClosure</span></a></span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span><span>
</span><span id="line-99"></span><span>
</span><span id="line-100"></span><span class="hs-comment">-- | This is the representation of a Haskell value on the heap. It reflects</span><span>
</span><span id="line-101"></span><span class="hs-comment">-- &lt;https://gitlab.haskell.org/ghc/ghc/blob/master/includes/rts/storage/Closures.h&gt;</span><span>
</span><span id="line-102"></span><span class="hs-comment">--</span><span>
</span><span id="line-103"></span><span class="hs-comment">-- The data type is parametrized by the type to store references in. Usually</span><span>
</span><span id="line-104"></span><span class="hs-comment">-- this is a 'Box' with the type synonym 'Closure'.</span><span>
</span><span id="line-105"></span><span class="hs-comment">--</span><span>
</span><span id="line-106"></span><span class="hs-comment">-- All Heap objects have the same basic layout. A header containing a pointer</span><span>
</span><span id="line-107"></span><span class="hs-comment">-- to the info table and a payload with various fields. The @info@ field below</span><span>
</span><span id="line-108"></span><span class="hs-comment">-- always refers to the info table pointed to by the header. The remaining</span><span>
</span><span id="line-109"></span><span class="hs-comment">-- fields are the payload.</span><span>
</span><span id="line-110"></span><span class="hs-comment">--</span><span>
</span><span id="line-111"></span><span class="hs-comment">-- See</span><span>
</span><span id="line-112"></span><span class="hs-comment">-- &lt;https://gitlab.haskell.org/ghc/ghc/wikis/commentary/rts/storage/heap-objects&gt;</span><span>
</span><span id="line-113"></span><span class="hs-comment">-- for more information.</span><span>
</span><span id="line-114"></span><span id="local-6989586621679058507"><span id="local-6989586621679058508"></span></span><span class="hs-keyword">data</span><span> </span><span id="GenClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#GenClosure"><span class="hs-identifier hs-var">GenClosure</span></a></span></span><span> </span><span id="local-6989586621679058692"><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span></span><span>
</span><span id="line-115"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-comment">-- | A data constructor</span><span>
</span><span id="line-116"></span><span>    </span><span id="ConstrClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ConstrClosure"><span class="hs-identifier hs-var">ConstrClosure</span></a></span></span><span>
</span><span id="line-117"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; StgInfoTable
</span><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-118"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="ptrArgs"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; [b]
</span><a href="GHC.Exts.Heap.Closures.html#ptrArgs"><span class="hs-identifier hs-var hs-var">ptrArgs</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>            </span><span class="hs-comment">-- ^ Pointer arguments</span><span>
</span><span id="line-119"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="dataArgs"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; [Word]
</span><a href="GHC.Exts.Heap.Closures.html#dataArgs"><span class="hs-identifier hs-var hs-var">dataArgs</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span class="hs-special">]</span><span>         </span><span class="hs-comment">-- ^ Non-pointer arguments</span><span>
</span><span id="line-120"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="pkg"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; String
</span><a href="GHC.Exts.Heap.Closures.html#pkg"><span class="hs-identifier hs-var hs-var">pkg</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>         </span><span class="hs-comment">-- ^ Package name</span><span>
</span><span id="line-121"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="modl"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; String
</span><a href="GHC.Exts.Heap.Closures.html#modl"><span class="hs-identifier hs-var hs-var">modl</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>         </span><span class="hs-comment">-- ^ Module name</span><span>
</span><span id="line-122"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="name"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; String
</span><a href="GHC.Exts.Heap.Closures.html#name"><span class="hs-identifier hs-var hs-var">name</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>         </span><span class="hs-comment">-- ^ Constructor name</span><span>
</span><span id="line-123"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-124"></span><span>
</span><span id="line-125"></span><span>    </span><span class="hs-comment">-- | A function</span><span>
</span><span id="line-126"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="FunClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#FunClosure"><span class="hs-identifier hs-var">FunClosure</span></a></span></span><span>
</span><span id="line-127"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-128"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="ptrArgs"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ptrArgs"><span class="hs-identifier hs-var">ptrArgs</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>            </span><span class="hs-comment">-- ^ Pointer arguments</span><span>
</span><span id="line-129"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="dataArgs"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#dataArgs"><span class="hs-identifier hs-var">dataArgs</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span class="hs-special">]</span><span>         </span><span class="hs-comment">-- ^ Non-pointer arguments</span><span>
</span><span id="line-130"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-131"></span><span>
</span><span id="line-132"></span><span>    </span><span class="hs-comment">-- | A thunk, an expression not obviously in head normal form</span><span>
</span><span id="line-133"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="ThunkClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ThunkClosure"><span class="hs-identifier hs-var">ThunkClosure</span></a></span></span><span>
</span><span id="line-134"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-135"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="ptrArgs"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ptrArgs"><span class="hs-identifier hs-var">ptrArgs</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>            </span><span class="hs-comment">-- ^ Pointer arguments</span><span>
</span><span id="line-136"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="dataArgs"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#dataArgs"><span class="hs-identifier hs-var">dataArgs</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span class="hs-special">]</span><span>         </span><span class="hs-comment">-- ^ Non-pointer arguments</span><span>
</span><span id="line-137"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-138"></span><span>
</span><span id="line-139"></span><span>    </span><span class="hs-comment">-- | A thunk which performs a simple selection operation</span><span>
</span><span id="line-140"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="SelectorClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#SelectorClosure"><span class="hs-identifier hs-var">SelectorClosure</span></a></span></span><span>
</span><span id="line-141"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-142"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="selectee"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#selectee"><span class="hs-identifier hs-var hs-var">selectee</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to the object being</span><span>
</span><span id="line-143"></span><span>                                        </span><span class="hs-comment">--   selected from</span><span>
</span><span id="line-144"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-145"></span><span>
</span><span id="line-146"></span><span>    </span><span class="hs-comment">-- | An unsaturated function application</span><span>
</span><span id="line-147"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PAPClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PAPClosure"><span class="hs-identifier hs-var">PAPClosure</span></a></span></span><span>
</span><span id="line-148"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-149"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="arity"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; HalfWord
</span><a href="GHC.Exts.Heap.Closures.html#arity"><span class="hs-identifier hs-var hs-var">arity</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span>       </span><span class="hs-comment">-- ^ Arity of the partial application</span><span>
</span><span id="line-150"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="n_args"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; HalfWord
</span><a href="GHC.Exts.Heap.Closures.html#n_args"><span class="hs-identifier hs-var hs-var">n_args</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span>       </span><span class="hs-comment">-- ^ Size of the payload in words</span><span>
</span><span id="line-151"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="fun"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#fun"><span class="hs-identifier hs-var hs-var">fun</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to a 'FunClosure'</span><span>
</span><span id="line-152"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="payload"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; [b]
</span><a href="GHC.Exts.Heap.Closures.html#payload"><span class="hs-identifier hs-var hs-var">payload</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>            </span><span class="hs-comment">-- ^ Sequence of already applied</span><span>
</span><span id="line-153"></span><span>                                        </span><span class="hs-comment">--   arguments</span><span>
</span><span id="line-154"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-155"></span><span>
</span><span id="line-156"></span><span>    </span><span class="hs-comment">-- In GHCi, if Linker.h would allow a reverse lookup, we could for exported</span><span>
</span><span id="line-157"></span><span>    </span><span class="hs-comment">-- functions fun actually find the name here.</span><span>
</span><span id="line-158"></span><span>    </span><span class="hs-comment">-- At least the other direction works via &quot;lookupSymbol</span><span>
</span><span id="line-159"></span><span>    </span><span class="hs-comment">-- base_GHCziBase_zpzp_closure&quot; and yields the same address (up to tags)</span><span>
</span><span id="line-160"></span><span>    </span><span class="hs-comment">-- | A function application</span><span>
</span><span id="line-161"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="APClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#APClosure"><span class="hs-identifier hs-var">APClosure</span></a></span></span><span>
</span><span id="line-162"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-163"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="arity"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#arity"><span class="hs-identifier hs-var">arity</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span>       </span><span class="hs-comment">-- ^ Always 0</span><span>
</span><span id="line-164"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="n_args"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#n_args"><span class="hs-identifier hs-var">n_args</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span>       </span><span class="hs-comment">-- ^ Size of payload in words</span><span>
</span><span id="line-165"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="fun"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#fun"><span class="hs-identifier hs-var">fun</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to a 'FunClosure'</span><span>
</span><span id="line-166"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="payload"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#payload"><span class="hs-identifier hs-var">payload</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>            </span><span class="hs-comment">-- ^ Sequence of already applied</span><span>
</span><span id="line-167"></span><span>                                        </span><span class="hs-comment">--   arguments</span><span>
</span><span id="line-168"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-169"></span><span>
</span><span id="line-170"></span><span>    </span><span class="hs-comment">-- | A suspended thunk evaluation</span><span>
</span><span id="line-171"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="APStackClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#APStackClosure"><span class="hs-identifier hs-var">APStackClosure</span></a></span></span><span>
</span><span id="line-172"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-173"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="fun"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#fun"><span class="hs-identifier hs-var">fun</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Function closure</span><span>
</span><span id="line-174"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="payload"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#payload"><span class="hs-identifier hs-var">payload</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>            </span><span class="hs-comment">-- ^ Stack right before suspension</span><span>
</span><span id="line-175"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-176"></span><span>
</span><span id="line-177"></span><span>    </span><span class="hs-comment">-- | A pointer to another closure, introduced when a thunk is updated</span><span>
</span><span id="line-178"></span><span>    </span><span class="hs-comment">-- to point at its value</span><span>
</span><span id="line-179"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="IndClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#IndClosure"><span class="hs-identifier hs-var">IndClosure</span></a></span></span><span>
</span><span id="line-180"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-181"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="indirectee"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#indirectee"><span class="hs-identifier hs-var hs-var">indirectee</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Target closure</span><span>
</span><span id="line-182"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-183"></span><span>
</span><span id="line-184"></span><span>   </span><span class="hs-comment">-- | A byte-code object (BCO) which can be interpreted by GHC's byte-code</span><span>
</span><span id="line-185"></span><span>   </span><span class="hs-comment">-- interpreter (e.g. as used by GHCi)</span><span>
</span><span id="line-186"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="BCOClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#BCOClosure"><span class="hs-identifier hs-var">BCOClosure</span></a></span></span><span>
</span><span id="line-187"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-188"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="instrs"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#instrs"><span class="hs-identifier hs-var hs-var">instrs</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ A pointer to an ArrWords</span><span>
</span><span id="line-189"></span><span>                                        </span><span class="hs-comment">--   of instructions</span><span>
</span><span id="line-190"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="literals"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#literals"><span class="hs-identifier hs-var hs-var">literals</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ A pointer to an ArrWords</span><span>
</span><span id="line-191"></span><span>                                        </span><span class="hs-comment">--   of literals</span><span>
</span><span id="line-192"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="bcoptrs"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#bcoptrs"><span class="hs-identifier hs-var hs-var">bcoptrs</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ A pointer to an ArrWords</span><span>
</span><span id="line-193"></span><span>                                        </span><span class="hs-comment">--   of byte code objects</span><span>
</span><span id="line-194"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="arity"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#arity"><span class="hs-identifier hs-var">arity</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span>       </span><span class="hs-comment">-- ^ The arity of this BCO</span><span>
</span><span id="line-195"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="size"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; HalfWord
</span><a href="GHC.Exts.Heap.Closures.html#size"><span class="hs-identifier hs-var hs-var">size</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#HalfWord"><span class="hs-identifier hs-type">HalfWord</span></a></span><span>       </span><span class="hs-comment">-- ^ The size of this BCO in words</span><span>
</span><span id="line-196"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="bitmap"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; [Word]
</span><a href="GHC.Exts.Heap.Closures.html#bitmap"><span class="hs-identifier hs-var hs-var">bitmap</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span class="hs-special">]</span><span>         </span><span class="hs-comment">-- ^ An StgLargeBitmap describing the</span><span>
</span><span id="line-197"></span><span>                                        </span><span class="hs-comment">--   pointerhood of its args/free vars</span><span>
</span><span id="line-198"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-199"></span><span>
</span><span id="line-200"></span><span>    </span><span class="hs-comment">-- | A thunk under evaluation by another thread</span><span>
</span><span id="line-201"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="BlackholeClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#BlackholeClosure"><span class="hs-identifier hs-var">BlackholeClosure</span></a></span></span><span>
</span><span id="line-202"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-203"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="indirectee"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#indirectee"><span class="hs-identifier hs-var">indirectee</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ The target closure</span><span>
</span><span id="line-204"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-205"></span><span>
</span><span id="line-206"></span><span>    </span><span class="hs-comment">-- | A @ByteArray#@</span><span>
</span><span id="line-207"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="ArrWordsClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ArrWordsClosure"><span class="hs-identifier hs-var">ArrWordsClosure</span></a></span></span><span>
</span><span id="line-208"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-209"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="bytes"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Word
</span><a href="GHC.Exts.Heap.Closures.html#bytes"><span class="hs-identifier hs-var hs-var">bytes</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span>           </span><span class="hs-comment">-- ^ Size of array in bytes</span><span>
</span><span id="line-210"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="arrWords"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; [Word]
</span><a href="GHC.Exts.Heap.Closures.html#arrWords"><span class="hs-identifier hs-var hs-var">arrWords</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span class="hs-special">]</span><span>         </span><span class="hs-comment">-- ^ Array payload</span><span>
</span><span id="line-211"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-212"></span><span>
</span><span id="line-213"></span><span>    </span><span class="hs-comment">-- | A @MutableByteArray#@</span><span>
</span><span id="line-214"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="MutArrClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#MutArrClosure"><span class="hs-identifier hs-var">MutArrClosure</span></a></span></span><span>
</span><span id="line-215"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-216"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="mccPtrs"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Word
</span><a href="GHC.Exts.Heap.Closures.html#mccPtrs"><span class="hs-identifier hs-var hs-var">mccPtrs</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span>           </span><span class="hs-comment">-- ^ Number of pointers</span><span>
</span><span id="line-217"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="mccSize"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Word
</span><a href="GHC.Exts.Heap.Closures.html#mccSize"><span class="hs-identifier hs-var hs-var">mccSize</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span>           </span><span class="hs-comment">-- ^ ?? Closures.h vs ClosureMacros.h</span><span>
</span><span id="line-218"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="mccPayload"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; [b]
</span><a href="GHC.Exts.Heap.Closures.html#mccPayload"><span class="hs-identifier hs-var hs-var">mccPayload</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>            </span><span class="hs-comment">-- ^ Array payload</span><span>
</span><span id="line-219"></span><span>        </span><span class="hs-comment">-- Card table ignored</span><span>
</span><span id="line-220"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-221"></span><span>
</span><span id="line-222"></span><span>    </span><span class="hs-comment">-- | A @SmallMutableArray#@</span><span>
</span><span id="line-223"></span><span>    </span><span class="hs-comment">--</span><span>
</span><span id="line-224"></span><span>    </span><span class="hs-comment">-- @since 8.10.1</span><span>
</span><span id="line-225"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="SmallMutArrClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#SmallMutArrClosure"><span class="hs-identifier hs-var">SmallMutArrClosure</span></a></span></span><span>
</span><span id="line-226"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-227"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="mccPtrs"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#mccPtrs"><span class="hs-identifier hs-var">mccPtrs</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span>           </span><span class="hs-comment">-- ^ Number of pointers</span><span>
</span><span id="line-228"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="mccPayload"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#mccPayload"><span class="hs-identifier hs-var">mccPayload</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>            </span><span class="hs-comment">-- ^ Array payload</span><span>
</span><span id="line-229"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-230"></span><span>
</span><span id="line-231"></span><span>    </span><span class="hs-comment">-- | An @MVar#@, with a queue of thread state objects blocking on them</span><span>
</span><span id="line-232"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span id="MVarClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#MVarClosure"><span class="hs-identifier hs-var">MVarClosure</span></a></span></span><span>
</span><span id="line-233"></span><span>    </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-234"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="queueHead"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#queueHead"><span class="hs-identifier hs-var hs-var">queueHead</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to head of queue</span><span>
</span><span id="line-235"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="queueTail"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#queueTail"><span class="hs-identifier hs-var hs-var">queueTail</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to tail of queue</span><span>
</span><span id="line-236"></span><span>    </span><span class="hs-special">,</span><span> </span><span id="value"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#value"><span class="hs-identifier hs-var hs-var">value</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to closure</span><span>
</span><span id="line-237"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-238"></span><span>
</span><span id="line-239"></span><span>    </span><span class="hs-comment">-- | An @IOPort#@, with a queue of thread state objects blocking on them</span><span>
</span><span id="line-240"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="IOPortClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#IOPortClosure"><span class="hs-identifier hs-var">IOPortClosure</span></a></span></span><span>
</span><span id="line-241"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-242"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="queueHead"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#queueHead"><span class="hs-identifier hs-var">queueHead</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to head of queue</span><span>
</span><span id="line-243"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="queueTail"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#queueTail"><span class="hs-identifier hs-var">queueTail</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to tail of queue</span><span>
</span><span id="line-244"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="value"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#value"><span class="hs-identifier hs-var">value</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to closure</span><span>
</span><span id="line-245"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-246"></span><span>
</span><span id="line-247"></span><span>    </span><span class="hs-comment">-- | A @MutVar#@</span><span>
</span><span id="line-248"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="MutVarClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#MutVarClosure"><span class="hs-identifier hs-var">MutVarClosure</span></a></span></span><span>
</span><span id="line-249"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-250"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="var"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#var"><span class="hs-identifier hs-var hs-var">var</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ Pointer to contents</span><span>
</span><span id="line-251"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-252"></span><span>
</span><span id="line-253"></span><span>    </span><span class="hs-comment">-- | An STM blocking queue.</span><span>
</span><span id="line-254"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="BlockingQueueClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#BlockingQueueClosure"><span class="hs-identifier hs-var">BlockingQueueClosure</span></a></span></span><span>
</span><span id="line-255"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-256"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="link"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#link"><span class="hs-identifier hs-var hs-var">link</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ ?? Here so it looks like an IND</span><span>
</span><span id="line-257"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="blackHole"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#blackHole"><span class="hs-identifier hs-var hs-var">blackHole</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ The blackhole closure</span><span>
</span><span id="line-258"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="owner"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#owner"><span class="hs-identifier hs-var hs-var">owner</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ The owning thread state object</span><span>
</span><span id="line-259"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="queue"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#queue"><span class="hs-identifier hs-var hs-var">queue</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>              </span><span class="hs-comment">-- ^ ??</span><span>
</span><span id="line-260"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-261"></span><span>
</span><span id="line-262"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="WeakClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#WeakClosure"><span class="hs-identifier hs-var">WeakClosure</span></a></span></span><span>
</span><span id="line-263"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-264"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="cfinalizers"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#cfinalizers"><span class="hs-identifier hs-var hs-var">cfinalizers</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-265"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="key"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#key"><span class="hs-identifier hs-var hs-var">key</span></a></span></span><span>         </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-266"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="value"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#value"><span class="hs-identifier hs-var">value</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-267"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="finalizer"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; b
</span><a href="GHC.Exts.Heap.Closures.html#finalizer"><span class="hs-identifier hs-var hs-var">finalizer</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-268"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="link"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#link"><span class="hs-identifier hs-var">link</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-comment">-- ^ next weak pointer for the capability, can be NULL.</span><span>
</span><span id="line-269"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-270"></span><span>
</span><span id="line-271"></span><span>    </span><span class="hs-comment">------------------------------------------------------------</span><span>
</span><span id="line-272"></span><span>    </span><span class="hs-comment">-- Unboxed unlifted closures</span><span>
</span><span id="line-273"></span><span>
</span><span id="line-274"></span><span>    </span><span class="hs-comment">-- | Primitive Int</span><span>
</span><span id="line-275"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="IntClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#IntClosure"><span class="hs-identifier hs-var">IntClosure</span></a></span></span><span>
</span><span id="line-276"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="ptipe"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; PrimType
</span><a href="GHC.Exts.Heap.Closures.html#ptipe"><span class="hs-identifier hs-var hs-var">ptipe</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier hs-type">PrimType</span></a></span><span>
</span><span id="line-277"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="intVal"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Int
</span><a href="GHC.Exts.Heap.Closures.html#intVal"><span class="hs-identifier hs-var hs-var">intVal</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-278"></span><span>
</span><span id="line-279"></span><span>    </span><span class="hs-comment">-- | Primitive Word</span><span>
</span><span id="line-280"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="WordClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#WordClosure"><span class="hs-identifier hs-var">WordClosure</span></a></span></span><span>
</span><span id="line-281"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="ptipe"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ptipe"><span class="hs-identifier hs-var">ptipe</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier hs-type">PrimType</span></a></span><span>
</span><span id="line-282"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="wordVal"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Word
</span><a href="GHC.Exts.Heap.Closures.html#wordVal"><span class="hs-identifier hs-var hs-var">wordVal</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-283"></span><span>
</span><span id="line-284"></span><span>    </span><span class="hs-comment">-- | Primitive Int64</span><span>
</span><span id="line-285"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="Int64Closure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Int64Closure"><span class="hs-identifier hs-var">Int64Closure</span></a></span></span><span>
</span><span id="line-286"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="ptipe"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ptipe"><span class="hs-identifier hs-var">ptipe</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier hs-type">PrimType</span></a></span><span>
</span><span id="line-287"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="int64Val"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Int64
</span><a href="GHC.Exts.Heap.Closures.html#int64Val"><span class="hs-identifier hs-var hs-var">int64Val</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../base/src/GHC.Int.html#Int64"><span class="hs-identifier hs-type">Int64</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-288"></span><span>
</span><span id="line-289"></span><span>    </span><span class="hs-comment">-- | Primitive Word64</span><span>
</span><span id="line-290"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="Word64Closure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Word64Closure"><span class="hs-identifier hs-var">Word64Closure</span></a></span></span><span>
</span><span id="line-291"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="ptipe"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ptipe"><span class="hs-identifier hs-var">ptipe</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier hs-type">PrimType</span></a></span><span>
</span><span id="line-292"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="word64Val"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Word64
</span><a href="GHC.Exts.Heap.Closures.html#word64Val"><span class="hs-identifier hs-var hs-var">word64Val</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../base/src/GHC.Word.html#Word64"><span class="hs-identifier hs-type">Word64</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-293"></span><span>
</span><span id="line-294"></span><span>    </span><span class="hs-comment">-- | Primitive Addr</span><span>
</span><span id="line-295"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="AddrClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#AddrClosure"><span class="hs-identifier hs-var">AddrClosure</span></a></span></span><span>
</span><span id="line-296"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="ptipe"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ptipe"><span class="hs-identifier hs-var">ptipe</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier hs-type">PrimType</span></a></span><span>
</span><span id="line-297"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="addrVal"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Int
</span><a href="GHC.Exts.Heap.Closures.html#addrVal"><span class="hs-identifier hs-var hs-var">addrVal</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-298"></span><span>
</span><span id="line-299"></span><span>    </span><span class="hs-comment">-- | Primitive Float</span><span>
</span><span id="line-300"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="FloatClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#FloatClosure"><span class="hs-identifier hs-var">FloatClosure</span></a></span></span><span>
</span><span id="line-301"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="ptipe"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ptipe"><span class="hs-identifier hs-var">ptipe</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier hs-type">PrimType</span></a></span><span>
</span><span id="line-302"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="floatVal"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Float
</span><a href="GHC.Exts.Heap.Closures.html#floatVal"><span class="hs-identifier hs-var hs-var">floatVal</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Float"><span class="hs-identifier hs-type">Float</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-303"></span><span>
</span><span id="line-304"></span><span>    </span><span class="hs-comment">-- | Primitive Double</span><span>
</span><span id="line-305"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="DoubleClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#DoubleClosure"><span class="hs-identifier hs-var">DoubleClosure</span></a></span></span><span>
</span><span id="line-306"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="ptipe"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ptipe"><span class="hs-identifier hs-var">ptipe</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier hs-type">PrimType</span></a></span><span>
</span><span id="line-307"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="doubleVal"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; Double
</span><a href="GHC.Exts.Heap.Closures.html#doubleVal"><span class="hs-identifier hs-var hs-var">doubleVal</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Double"><span class="hs-identifier hs-type">Double</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-308"></span><span>
</span><span id="line-309"></span><span>    </span><span class="hs-comment">-----------------------------------------------------------</span><span>
</span><span id="line-310"></span><span>    </span><span class="hs-comment">-- Anything else</span><span>
</span><span id="line-311"></span><span>
</span><span id="line-312"></span><span>    </span><span class="hs-comment">-- | Another kind of closure</span><span>
</span><span id="line-313"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="OtherClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#OtherClosure"><span class="hs-identifier hs-var">OtherClosure</span></a></span></span><span>
</span><span id="line-314"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-315"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="hvalues"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; [b]
</span><a href="GHC.Exts.Heap.Closures.html#hvalues"><span class="hs-identifier hs-var hs-var">hvalues</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058692"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-316"></span><span>        </span><span class="hs-special">,</span><span> </span><span id="rawWords"><span class="annot"><span class="annottext">forall b. GenClosure b -&gt; [Word]
</span><a href="GHC.Exts.Heap.Closures.html#rawWords"><span class="hs-identifier hs-var hs-var">rawWords</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="hs-special">[</span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Word"><span class="hs-identifier hs-type">Word</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-317"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-318"></span><span>
</span><span id="line-319"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="UnsupportedClosure"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#UnsupportedClosure"><span class="hs-identifier hs-var">UnsupportedClosure</span></a></span></span><span>
</span><span id="line-320"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="info"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#info"><span class="hs-identifier hs-var">info</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Exts.Heap.InfoTable.Types.html#StgInfoTable"><span class="hs-identifier hs-type">StgInfoTable</span></a></span><span>
</span><span id="line-321"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-322"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679058306"><span id="local-6989586621679058308"><span id="local-6989586621679058435"><span class="annot"><span class="annottext">Int -&gt; GenClosure b -&gt; ShowS
[GenClosure b] -&gt; ShowS
GenClosure b -&gt; String
(Int -&gt; GenClosure b -&gt; ShowS)
-&gt; (GenClosure b -&gt; String)
-&gt; ([GenClosure b] -&gt; ShowS)
-&gt; Show (GenClosure b)
forall b. Show b =&gt; Int -&gt; GenClosure b -&gt; ShowS
forall b. Show b =&gt; [GenClosure b] -&gt; ShowS
forall b. Show b =&gt; GenClosure b -&gt; String
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [GenClosure b] -&gt; ShowS
$cshowList :: forall b. Show b =&gt; [GenClosure b] -&gt; ShowS
show :: GenClosure b -&gt; String
$cshow :: forall b. Show b =&gt; GenClosure b -&gt; String
showsPrec :: Int -&gt; GenClosure b -&gt; ShowS
$cshowsPrec :: forall b. Show b =&gt; Int -&gt; GenClosure b -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(forall x. GenClosure b -&gt; Rep (GenClosure b) x)
-&gt; (forall x. Rep (GenClosure b) x -&gt; GenClosure b)
-&gt; Generic (GenClosure b)
forall x. Rep (GenClosure b) x -&gt; GenClosure b
forall x. GenClosure b -&gt; Rep (GenClosure b) x
forall a.
(forall x. a -&gt; Rep a x) -&gt; (forall x. Rep a x -&gt; a) -&gt; Generic a
forall b x. Rep (GenClosure b) x -&gt; GenClosure b
forall b x. GenClosure b -&gt; Rep (GenClosure b) x
$cto :: forall b x. Rep (GenClosure b) x -&gt; GenClosure b
$cfrom :: forall b x. GenClosure b -&gt; Rep (GenClosure b) x
</span><a href="../../base/src/GHC.Generics.html#Generic"><span class="hs-identifier hs-var hs-var hs-var hs-var">Generic</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679058287"><span id="local-6989586621679058299"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; GenClosure a -&gt; GenClosure b)
-&gt; (forall a b. a -&gt; GenClosure b -&gt; GenClosure a)
-&gt; Functor GenClosure
forall a b. a -&gt; GenClosure b -&gt; GenClosure a
forall a b. (a -&gt; b) -&gt; GenClosure a -&gt; GenClosure b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; GenClosure b -&gt; GenClosure a
$c&lt;$ :: forall a b. a -&gt; GenClosure b -&gt; GenClosure a
fmap :: forall a b. (a -&gt; b) -&gt; GenClosure a -&gt; GenClosure b
$cfmap :: forall a b. (a -&gt; b) -&gt; GenClosure a -&gt; GenClosure b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679058182"><span id="local-6989586621679058184"><span id="local-6989586621679058186"><span id="local-6989586621679058188"><span id="local-6989586621679058190"><span id="local-6989586621679058192"><span id="local-6989586621679058200"><span id="local-6989586621679058202"><span id="local-6989586621679058204"><span id="local-6989586621679058206"><span id="local-6989586621679058208"><span id="local-6989586621679058210"><span id="local-6989586621679058212"><span id="local-6989586621679058223"><span id="local-6989586621679058225"><span id="local-6989586621679058272"><span id="local-6989586621679058274"><span class="annot"><span class="annottext">(forall m. Monoid m =&gt; GenClosure m -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenClosure a -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenClosure a -&gt; m)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; GenClosure a -&gt; a)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; GenClosure a -&gt; a)
-&gt; (forall b. GenClosure b -&gt; [b])
-&gt; (forall a. GenClosure a -&gt; Bool)
-&gt; (forall b. GenClosure b -&gt; Int)
-&gt; (forall a. Eq a =&gt; a -&gt; GenClosure a -&gt; Bool)
-&gt; (forall a. Ord a =&gt; GenClosure a -&gt; a)
-&gt; (forall a. Ord a =&gt; GenClosure a -&gt; a)
-&gt; (forall a. Num a =&gt; GenClosure a -&gt; a)
-&gt; (forall a. Num a =&gt; GenClosure a -&gt; a)
-&gt; Foldable GenClosure
forall a. Eq a =&gt; a -&gt; GenClosure a -&gt; Bool
forall a. Num a =&gt; GenClosure a -&gt; a
forall a. Ord a =&gt; GenClosure a -&gt; a
forall m. Monoid m =&gt; GenClosure m -&gt; m
forall a. GenClosure a -&gt; Bool
forall b. GenClosure b -&gt; Int
forall b. GenClosure b -&gt; [b]
forall a. (a -&gt; a -&gt; a) -&gt; GenClosure a -&gt; a
forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenClosure a -&gt; m
forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
forall (t :: * -&gt; *).
(forall m. Monoid m =&gt; t m -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; t a -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; t a -&gt; m)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; t a -&gt; a)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; t a -&gt; a)
-&gt; (forall a. t a -&gt; [a])
-&gt; (forall a. t a -&gt; Bool)
-&gt; (forall a. t a -&gt; Int)
-&gt; (forall a. Eq a =&gt; a -&gt; t a -&gt; Bool)
-&gt; (forall a. Ord a =&gt; t a -&gt; a)
-&gt; (forall a. Ord a =&gt; t a -&gt; a)
-&gt; (forall a. Num a =&gt; t a -&gt; a)
-&gt; (forall a. Num a =&gt; t a -&gt; a)
-&gt; Foldable t
product :: forall a. Num a =&gt; GenClosure a -&gt; a
$cproduct :: forall a. Num a =&gt; GenClosure a -&gt; a
sum :: forall a. Num a =&gt; GenClosure a -&gt; a
$csum :: forall a. Num a =&gt; GenClosure a -&gt; a
minimum :: forall a. Ord a =&gt; GenClosure a -&gt; a
$cminimum :: forall a. Ord a =&gt; GenClosure a -&gt; a
maximum :: forall a. Ord a =&gt; GenClosure a -&gt; a
$cmaximum :: forall a. Ord a =&gt; GenClosure a -&gt; a
elem :: forall a. Eq a =&gt; a -&gt; GenClosure a -&gt; Bool
$celem :: forall a. Eq a =&gt; a -&gt; GenClosure a -&gt; Bool
length :: forall b. GenClosure b -&gt; Int
$clength :: forall b. GenClosure b -&gt; Int
null :: forall a. GenClosure a -&gt; Bool
$cnull :: forall a. GenClosure a -&gt; Bool
toList :: forall b. GenClosure b -&gt; [b]
$ctoList :: forall b. GenClosure b -&gt; [b]
foldl1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenClosure a -&gt; a
$cfoldl1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenClosure a -&gt; a
foldr1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenClosure a -&gt; a
$cfoldr1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenClosure a -&gt; a
foldl' :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
$cfoldl' :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
foldl :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
$cfoldl :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
foldr' :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
$cfoldr' :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
foldr :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
$cfoldr :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenClosure a -&gt; b
foldMap' :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenClosure a -&gt; m
$cfoldMap' :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenClosure a -&gt; m
foldMap :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenClosure a -&gt; m
$cfoldMap :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenClosure a -&gt; m
fold :: forall m. Monoid m =&gt; GenClosure m -&gt; m
$cfold :: forall m. Monoid m =&gt; GenClosure m -&gt; m
</span><a href="../../base/src/Data.Foldable.html#Foldable"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Foldable</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679058113"><span id="local-6989586621679058115"><span id="local-6989586621679058117"><span id="local-6989586621679058175"><span class="annot"><span class="annottext">Functor GenClosure
Foldable GenClosure
Functor GenClosure
-&gt; Foldable GenClosure
-&gt; (forall (f :: * -&gt; *) a b.
    Applicative f =&gt;
    (a -&gt; f b) -&gt; GenClosure a -&gt; f (GenClosure b))
-&gt; (forall (f :: * -&gt; *) a.
    Applicative f =&gt;
    GenClosure (f a) -&gt; f (GenClosure a))
-&gt; (forall (m :: * -&gt; *) a b.
    Monad m =&gt;
    (a -&gt; m b) -&gt; GenClosure a -&gt; m (GenClosure b))
-&gt; (forall (m :: * -&gt; *) a.
    Monad m =&gt;
    GenClosure (m a) -&gt; m (GenClosure a))
-&gt; Traversable GenClosure
forall (t :: * -&gt; *).
Functor t
-&gt; Foldable t
-&gt; (forall (f :: * -&gt; *) a b.
    Applicative f =&gt;
    (a -&gt; f b) -&gt; t a -&gt; f (t b))
-&gt; (forall (f :: * -&gt; *) a. Applicative f =&gt; t (f a) -&gt; f (t a))
-&gt; (forall (m :: * -&gt; *) a b.
    Monad m =&gt;
    (a -&gt; m b) -&gt; t a -&gt; m (t b))
-&gt; (forall (m :: * -&gt; *) a. Monad m =&gt; t (m a) -&gt; m (t a))
-&gt; Traversable t
forall (m :: * -&gt; *) a.
Monad m =&gt;
GenClosure (m a) -&gt; m (GenClosure a)
forall (f :: * -&gt; *) a.
Applicative f =&gt;
GenClosure (f a) -&gt; f (GenClosure a)
forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenClosure a -&gt; m (GenClosure b)
forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenClosure a -&gt; f (GenClosure b)
sequence :: forall (m :: * -&gt; *) a.
Monad m =&gt;
GenClosure (m a) -&gt; m (GenClosure a)
$csequence :: forall (m :: * -&gt; *) a.
Monad m =&gt;
GenClosure (m a) -&gt; m (GenClosure a)
mapM :: forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenClosure a -&gt; m (GenClosure b)
$cmapM :: forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenClosure a -&gt; m (GenClosure b)
sequenceA :: forall (f :: * -&gt; *) a.
Applicative f =&gt;
GenClosure (f a) -&gt; f (GenClosure a)
$csequenceA :: forall (f :: * -&gt; *) a.
Applicative f =&gt;
GenClosure (f a) -&gt; f (GenClosure a)
traverse :: forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenClosure a -&gt; f (GenClosure b)
$ctraverse :: forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenClosure a -&gt; f (GenClosure b)
</span><a href="../../base/src/Data.Traversable.html#Traversable"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Traversable</span></a></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-323"></span><span>
</span><span id="line-324"></span><span>
</span><span id="line-325"></span><span id="local-6989586621679058109"><span id="local-6989586621679058110"></span></span><span class="hs-keyword">data</span><span> </span><span id="PrimType"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PrimType"><span class="hs-identifier hs-var">PrimType</span></a></span></span><span>
</span><span id="line-326"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="PInt"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PInt"><span class="hs-identifier hs-var">PInt</span></a></span></span><span>
</span><span id="line-327"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PWord"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PWord"><span class="hs-identifier hs-var">PWord</span></a></span></span><span>
</span><span id="line-328"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PInt64"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PInt64"><span class="hs-identifier hs-var">PInt64</span></a></span></span><span>
</span><span id="line-329"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PWord64"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PWord64"><span class="hs-identifier hs-var">PWord64</span></a></span></span><span>
</span><span id="line-330"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PAddr"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PAddr"><span class="hs-identifier hs-var">PAddr</span></a></span></span><span>
</span><span id="line-331"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PFloat"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PFloat"><span class="hs-identifier hs-var">PFloat</span></a></span></span><span>
</span><span id="line-332"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PDouble"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PDouble"><span class="hs-identifier hs-var">PDouble</span></a></span></span><span>
</span><span id="line-333"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679058098"><span id="local-6989586621679058100"><span class="annot"><span class="annottext">PrimType -&gt; PrimType -&gt; Bool
(PrimType -&gt; PrimType -&gt; Bool)
-&gt; (PrimType -&gt; PrimType -&gt; Bool) -&gt; Eq PrimType
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: PrimType -&gt; PrimType -&gt; Bool
$c/= :: PrimType -&gt; PrimType -&gt; Bool
== :: PrimType -&gt; PrimType -&gt; Bool
$c== :: PrimType -&gt; PrimType -&gt; Bool
</span><a href="../../ghc-prim/src/GHC.Classes.html#Eq"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679058091"><span id="local-6989586621679058093"><span id="local-6989586621679058095"><span class="annot"><span class="annottext">Int -&gt; PrimType -&gt; ShowS
[PrimType] -&gt; ShowS
PrimType -&gt; String
(Int -&gt; PrimType -&gt; ShowS)
-&gt; (PrimType -&gt; String) -&gt; ([PrimType] -&gt; ShowS) -&gt; Show PrimType
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [PrimType] -&gt; ShowS
$cshowList :: [PrimType] -&gt; ShowS
show :: PrimType -&gt; String
$cshow :: PrimType -&gt; String
showsPrec :: Int -&gt; PrimType -&gt; ShowS
$cshowsPrec :: Int -&gt; PrimType -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(forall x. PrimType -&gt; Rep PrimType x)
-&gt; (forall x. Rep PrimType x -&gt; PrimType) -&gt; Generic PrimType
forall x. Rep PrimType x -&gt; PrimType
forall x. PrimType -&gt; Rep PrimType x
forall a.
(forall x. a -&gt; Rep a x) -&gt; (forall x. Rep a x -&gt; a) -&gt; Generic a
$cto :: forall x. Rep PrimType x -&gt; PrimType
$cfrom :: forall x. PrimType -&gt; Rep PrimType x
</span><a href="../../base/src/GHC.Generics.html#Generic"><span class="hs-identifier hs-var hs-var hs-var hs-var">Generic</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-334"></span><span>
</span><span id="line-335"></span><span class="hs-comment">-- | For generic code, this function returns all referenced closures.</span><span>
</span><span id="line-336"></span><span id="local-6989586621679058087"><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-type">allClosures</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#GenClosure"><span class="hs-identifier hs-type">GenClosure</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679058087"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679058087"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-337"></span><span id="allClosures"><span class="annot"><span class="annottext">allClosures :: forall b. GenClosure b -&gt; [b]
</span><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var hs-var">allClosures</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ConstrClosure"><span class="hs-identifier hs-type">ConstrClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058081"><span id="local-6989586621679058082"><span id="local-6989586621679058083"><span id="local-6989586621679058084"><span id="local-6989586621679058085"><span id="local-6989586621679058086"><span class="annot"><span class="annottext">[b]
String
[Word]
StgInfoTable
name :: String
modl :: String
pkg :: String
dataArgs :: [Word]
ptrArgs :: [b]
info :: StgInfoTable
name :: forall b. GenClosure b -&gt; String
modl :: forall b. GenClosure b -&gt; String
pkg :: forall b. GenClosure b -&gt; String
dataArgs :: forall b. GenClosure b -&gt; [Word]
ptrArgs :: forall b. GenClosure b -&gt; [b]
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058081"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058085"><span class="hs-identifier hs-var">ptrArgs</span></a></span><span>
</span><span id="line-338"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ThunkClosure"><span class="hs-identifier hs-type">ThunkClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058078"><span id="local-6989586621679058079"><span id="local-6989586621679058080"><span class="annot"><span class="annottext">[b]
[Word]
StgInfoTable
dataArgs :: [Word]
ptrArgs :: [b]
info :: StgInfoTable
dataArgs :: forall b. GenClosure b -&gt; [Word]
ptrArgs :: forall b. GenClosure b -&gt; [b]
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058078"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058079"><span class="hs-identifier hs-var">ptrArgs</span></a></span><span>
</span><span id="line-339"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#SelectorClosure"><span class="hs-identifier hs-type">SelectorClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058076"><span id="local-6989586621679058077"><span class="annot"><span class="annottext">b
StgInfoTable
selectee :: b
info :: StgInfoTable
selectee :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058076"><span class="hs-glyph hs-var hs-var hs-var hs-var">..</span></a></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058076"><span class="hs-identifier hs-var">selectee</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-340"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#IndClosure"><span class="hs-identifier hs-type">IndClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058074"><span id="local-6989586621679058075"><span class="annot"><span class="annottext">b
StgInfoTable
indirectee :: b
info :: StgInfoTable
indirectee :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058074"><span class="hs-glyph hs-var hs-var hs-var hs-var">..</span></a></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058074"><span class="hs-identifier hs-var">indirectee</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-341"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#BlackholeClosure"><span class="hs-identifier hs-type">BlackholeClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058072"><span id="local-6989586621679058073"><span class="annot"><span class="annottext">b
StgInfoTable
indirectee :: b
info :: StgInfoTable
indirectee :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058072"><span class="hs-glyph hs-var hs-var hs-var hs-var">..</span></a></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058072"><span class="hs-identifier hs-var">indirectee</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-342"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#APClosure"><span class="hs-identifier hs-type">APClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058067"><span id="local-6989586621679058068"><span id="local-6989586621679058069"><span id="local-6989586621679058070"><span id="local-6989586621679058071"><span class="annot"><span class="annottext">b
[b]
HalfWord
StgInfoTable
payload :: [b]
fun :: b
n_args :: HalfWord
arity :: HalfWord
info :: StgInfoTable
payload :: forall b. GenClosure b -&gt; [b]
fun :: forall b. GenClosure b -&gt; b
n_args :: forall b. GenClosure b -&gt; HalfWord
arity :: forall b. GenClosure b -&gt; HalfWord
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058067"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058068"><span class="hs-identifier hs-var">fun</span></a></span><span class="annot"><span class="annottext">b -&gt; [b] -&gt; [b]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058067"><span class="hs-identifier hs-var">payload</span></a></span><span>
</span><span id="line-343"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#PAPClosure"><span class="hs-identifier hs-type">PAPClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058062"><span id="local-6989586621679058063"><span id="local-6989586621679058064"><span id="local-6989586621679058065"><span id="local-6989586621679058066"><span class="annot"><span class="annottext">b
[b]
HalfWord
StgInfoTable
payload :: [b]
fun :: b
n_args :: HalfWord
arity :: HalfWord
info :: StgInfoTable
payload :: forall b. GenClosure b -&gt; [b]
fun :: forall b. GenClosure b -&gt; b
n_args :: forall b. GenClosure b -&gt; HalfWord
arity :: forall b. GenClosure b -&gt; HalfWord
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058062"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058063"><span class="hs-identifier hs-var">fun</span></a></span><span class="annot"><span class="annottext">b -&gt; [b] -&gt; [b]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058062"><span class="hs-identifier hs-var">payload</span></a></span><span>
</span><span id="line-344"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#APStackClosure"><span class="hs-identifier hs-type">APStackClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058059"><span id="local-6989586621679058060"><span id="local-6989586621679058061"><span class="annot"><span class="annottext">b
[b]
StgInfoTable
payload :: [b]
fun :: b
info :: StgInfoTable
payload :: forall b. GenClosure b -&gt; [b]
fun :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058059"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058060"><span class="hs-identifier hs-var">fun</span></a></span><span class="annot"><span class="annottext">b -&gt; [b] -&gt; [b]
forall a. a -&gt; [a] -&gt; [a]
</span><a href="../../ghc-prim/src/GHC.Types.html#%3A"><span class="hs-glyph hs-var">:</span></a></span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058059"><span class="hs-identifier hs-var">payload</span></a></span><span>
</span><span id="line-345"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#BCOClosure"><span class="hs-identifier hs-type">BCOClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058052"><span id="local-6989586621679058053"><span id="local-6989586621679058054"><span id="local-6989586621679058055"><span id="local-6989586621679058056"><span id="local-6989586621679058057"><span id="local-6989586621679058058"><span class="annot"><span class="annottext">b
[Word]
HalfWord
StgInfoTable
bitmap :: [Word]
size :: HalfWord
arity :: HalfWord
bcoptrs :: b
literals :: b
instrs :: b
info :: StgInfoTable
bitmap :: forall b. GenClosure b -&gt; [Word]
size :: forall b. GenClosure b -&gt; HalfWord
bcoptrs :: forall b. GenClosure b -&gt; b
literals :: forall b. GenClosure b -&gt; b
instrs :: forall b. GenClosure b -&gt; b
arity :: forall b. GenClosure b -&gt; HalfWord
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058052"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058057"><span class="hs-identifier hs-var">instrs</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058056"><span class="hs-identifier hs-var">literals</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058055"><span class="hs-identifier hs-var">bcoptrs</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-346"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#ArrWordsClosure"><span class="hs-identifier hs-type">ArrWordsClosure</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-347"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#MutArrClosure"><span class="hs-identifier hs-type">MutArrClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058048"><span id="local-6989586621679058049"><span id="local-6989586621679058050"><span id="local-6989586621679058051"><span class="annot"><span class="annottext">[b]
Word
StgInfoTable
mccPayload :: [b]
mccSize :: Word
mccPtrs :: Word
info :: StgInfoTable
mccPayload :: forall b. GenClosure b -&gt; [b]
mccSize :: forall b. GenClosure b -&gt; Word
mccPtrs :: forall b. GenClosure b -&gt; Word
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058048"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058048"><span class="hs-identifier hs-var">mccPayload</span></a></span><span>
</span><span id="line-348"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#SmallMutArrClosure"><span class="hs-identifier hs-type">SmallMutArrClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058045"><span id="local-6989586621679058046"><span id="local-6989586621679058047"><span class="annot"><span class="annottext">[b]
Word
StgInfoTable
mccPayload :: [b]
mccPtrs :: Word
info :: StgInfoTable
mccPayload :: forall b. GenClosure b -&gt; [b]
mccPtrs :: forall b. GenClosure b -&gt; Word
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058045"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058045"><span class="hs-identifier hs-var">mccPayload</span></a></span><span>
</span><span id="line-349"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#MutVarClosure"><span class="hs-identifier hs-type">MutVarClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058043"><span id="local-6989586621679058044"><span class="annot"><span class="annottext">b
StgInfoTable
var :: b
info :: StgInfoTable
var :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058043"><span class="hs-glyph hs-var hs-var hs-var hs-var">..</span></a></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058043"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-350"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#MVarClosure"><span class="hs-identifier hs-type">MVarClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058039"><span id="local-6989586621679058040"><span id="local-6989586621679058041"><span id="local-6989586621679058042"><span class="annot"><span class="annottext">b
StgInfoTable
value :: b
queueTail :: b
queueHead :: b
info :: StgInfoTable
value :: forall b. GenClosure b -&gt; b
queueTail :: forall b. GenClosure b -&gt; b
queueHead :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058039"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058041"><span class="hs-identifier hs-var">queueHead</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058040"><span class="hs-identifier hs-var">queueTail</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058039"><span class="hs-identifier hs-var">value</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-351"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#IOPortClosure"><span class="hs-identifier hs-type">IOPortClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058035"><span id="local-6989586621679058036"><span id="local-6989586621679058037"><span id="local-6989586621679058038"><span class="annot"><span class="annottext">b
StgInfoTable
value :: b
queueTail :: b
queueHead :: b
info :: StgInfoTable
value :: forall b. GenClosure b -&gt; b
queueTail :: forall b. GenClosure b -&gt; b
queueHead :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058035"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058037"><span class="hs-identifier hs-var">queueHead</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058036"><span class="hs-identifier hs-var">queueTail</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058035"><span class="hs-identifier hs-var">value</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-352"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#FunClosure"><span class="hs-identifier hs-type">FunClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058032"><span id="local-6989586621679058033"><span id="local-6989586621679058034"><span class="annot"><span class="annottext">[b]
[Word]
StgInfoTable
dataArgs :: [Word]
ptrArgs :: [b]
info :: StgInfoTable
dataArgs :: forall b. GenClosure b -&gt; [Word]
ptrArgs :: forall b. GenClosure b -&gt; [b]
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058032"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058033"><span class="hs-identifier hs-var">ptrArgs</span></a></span><span>
</span><span id="line-353"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#BlockingQueueClosure"><span class="hs-identifier hs-type">BlockingQueueClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058027"><span id="local-6989586621679058028"><span id="local-6989586621679058029"><span id="local-6989586621679058030"><span id="local-6989586621679058031"><span class="annot"><span class="annottext">b
StgInfoTable
queue :: b
owner :: b
blackHole :: b
link :: b
info :: StgInfoTable
queue :: forall b. GenClosure b -&gt; b
owner :: forall b. GenClosure b -&gt; b
blackHole :: forall b. GenClosure b -&gt; b
link :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058027"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058030"><span class="hs-identifier hs-var">link</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058029"><span class="hs-identifier hs-var">blackHole</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058028"><span class="hs-identifier hs-var">owner</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058027"><span class="hs-identifier hs-var">queue</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-354"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#WeakClosure"><span class="hs-identifier hs-type">WeakClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058021"><span id="local-6989586621679058022"><span id="local-6989586621679058023"><span id="local-6989586621679058024"><span id="local-6989586621679058025"><span id="local-6989586621679058026"><span class="annot"><span class="annottext">b
StgInfoTable
link :: b
finalizer :: b
value :: b
key :: b
cfinalizers :: b
info :: StgInfoTable
finalizer :: forall b. GenClosure b -&gt; b
key :: forall b. GenClosure b -&gt; b
cfinalizers :: forall b. GenClosure b -&gt; b
link :: forall b. GenClosure b -&gt; b
value :: forall b. GenClosure b -&gt; b
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058021"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058025"><span class="hs-identifier hs-var">cfinalizers</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058024"><span class="hs-identifier hs-var">key</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058023"><span class="hs-identifier hs-var">value</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058022"><span class="hs-identifier hs-var">finalizer</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679058021"><span class="hs-identifier hs-var">link</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-355"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#OtherClosure"><span class="hs-identifier hs-type">OtherClosure</span></a></span><span> </span><span class="hs-special">{</span><span id="local-6989586621679058018"><span id="local-6989586621679058019"><span id="local-6989586621679058020"><span class="annot"><span class="annottext">[b]
[Word]
StgInfoTable
rawWords :: [Word]
hvalues :: [b]
info :: StgInfoTable
rawWords :: forall b. GenClosure b -&gt; [Word]
hvalues :: forall b. GenClosure b -&gt; [b]
info :: forall b. GenClosure b -&gt; StgInfoTable
</span><a href="#local-6989586621679058018"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621679058019"><span class="hs-identifier hs-var">hvalues</span></a></span><span>
</span><span id="line-356"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#allClosures"><span class="hs-identifier hs-var">allClosures</span></a></span><span> </span><span class="annot"><span class="annottext">GenClosure b
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-cpp">

#if __GLASGOW_HASKELL__ &gt;= 809
</span><span class="hs-comment">-- | Get the size of the top-level closure in words.</span><span>
</span><span id="line-360"></span><span class="hs-comment">-- Includes header and payload. Does not follow pointers.</span><span>
</span><span id="line-361"></span><span class="hs-comment">--</span><span>
</span><span id="line-362"></span><span class="hs-comment">-- @since 8.10.1</span><span>
</span><span id="line-363"></span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#closureSize"><span class="hs-identifier hs-type">closureSize</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier hs-type">Int</span></a></span><span>
</span><span id="line-364"></span><span id="closureSize"><span class="annot"><span class="annottext">closureSize :: Box -&gt; Int
</span><a href="GHC.Exts.Heap.Closures.html#closureSize"><span class="hs-identifier hs-var hs-var">closureSize</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Exts.Heap.Closures.html#Box"><span class="hs-identifier hs-type">Box</span></a></span><span> </span><span id="local-6989586621679058017"><span class="annot"><span class="annottext">Any
</span><a href="#local-6989586621679058017"><span class="hs-identifier hs-var">x</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int# -&gt; Int
</span><a href="../../ghc-prim/src/GHC.Types.html#I%23"><span class="hs-identifier hs-var">I#</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Any -&gt; Int#
forall a. a -&gt; Int#
</span><a href="../../ghc-prim/src/GHC.Prim.html#closureSize%23"><span class="hs-identifier hs-var">closureSize#</span></a></span><span> </span><span class="annot"><span class="annottext">Any
</span><a href="#local-6989586621679058017"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span></pre></body></html>